﻿/*******************************************************************************
 * AAEngine
 * Copyright (c) 2010 Mike Jarosch
 *
 * Original source PushButton Engine:
 * Copyright (C) 2009 PushButton Labs, LLC
 * For more information see http://www.pushbuttonengine.com
 *
 * This file is licensed under the terms of the MIT license, which is included
 * in the "MIT License.txt" file at the root directory of this SDK.
 ******************************************************************************/

using AAEngine.Engine.Core;

namespace AAEngine.Engine.Entities
{
    public interface IPropertyBag
    {
        IEventDispatcher EventDispatcher { get; }

        bool DoesPropertyExist(PropertyReference property);

#if WINDOWS_PHONE || XBOX
        object GetProperty(PropertyReference property);
        object GetProperty(PropertyReference property, object defaultValue);
#else
        object GetProperty(PropertyReference property, object defaultValue = null);
#endif

        void SetProperty(PropertyReference property, object value);
    }
}
